/* 
 * File:   Conjunto.h
 * Author: laptop
 *
 * Created on 18 / juny / 2010, 18:46
 */

#ifndef _CONJUNTO_H
#define	_CONJUNTO_H

#include <iostream>
#include <vector>
#include "Primitiva.h"
#include "Linea.h"
#include "Punto.h"
#include "Rectangulo.h"
#include "Circulo.h"
#include "Triangulo.h"
#include "Modelo.h"

using namespace std;

class Conjunto: public Primitiva
{
    public:
        Conjunto()  { };
        Conjunto(int,int,int,int);
        Conjunto(const vector<Primitiva*>&);
        Conjunto(const Conjunto& c);
        ~Conjunto() { };

        int GetWidth() const  { return width; };
        int GetHeight() const { return height; };
        vector<Primitiva*> GetComponentes() const { return componentes; };

        Conjunto& operator=(const Conjunto& l);

        void Move(int x, int y);
        void Agrupar(Primitiva* p);
        void Agrupar(vector<Primitiva*> p);
        void Desagrupar(Primitiva* p);
        void Desagrupar(vector<Primitiva*>& figuras);
        
    private:
        int width, height;
        vector<Primitiva*> componentes;
};


#endif	/* _CONJUNTO_H */

